1. Relevant Field
The present invention relates to computer-implemented methods and systems for exchanging hierarchical data.
2. Background Information
Internet-based computing environments have grown in popularity in recent years to due to the ubiquity of web browsers and the convenience of using a cross-platform web browser as a client. Within this framework, web applications represent the corollary to distributed client software applications in traditional client-server paradigms. Web applications permit users to operate software with a minimal exposure to the details or infrastructure present on the server systems in the internet “cloud”. From the application provider's perspective, web applications are particularly attractive because their inherent cross-platform nature allows them to be updated and maintained at the server without the costly and tedious task of distributing and installing software on every client machine.
One example of a web application is Web Dynpro offered by SAP AG. Web Dynpro (“WD”) is a web application user interface technology that is enabled by the SAP NetWeaver® platform. Like many web applications, WD separates the interface from the underlying data and application logic by exchanging with a server hierarchical data in the form of one or more standard data definition languages, such as the Web Services Definition Language (WSDL), XML schema (xsd), or specialized XML languages, such as cXML, or eBXML. The hierarchical data objects encoded in these documents may be, for example, an invoice, expense report, or purchase order.
Current data definition languages, such as XML, are string-based in that they encode data hierarchical data within string tags. Current client-server solutions exchanging these documents must therefore perform extensive string processing on the server and client. On the server side, the hierarchical data must be converted into multiple string tags that specify the data objects' hierarchical organization. The number and duplicity of strings that may be encoded greatly increases processing time and file size. Moreover, even greater inefficiencies exist on the client side, where, upon receiving the XML document, the client must parse, validate, and convert each data object, node-by-node in order to construct a useable document object model (DOM). Moreover, the mechanisms currently used by clients to create a DOM in memory do not provide an optimized memory layout, and therefore often suffer from poor cache utilization.
In view of the foregoing, there is a need for computer-implemented systems and methods that efficiently exchange hierarchical data by reducing file size, reducing the processing loads on both the client and server, and increasing data locality and cache effects.